package com.learnyou.server.xingzuo.biz.common;

import com.learnyou.server.xingzuo.dto.enums.AttendanceStatus;

import java.util.Date;
import java.util.List;

public interface MpMessageBiz {
    /**
     * 发送点评通知
     * @param courseScheduleId 课次ID
     * @param studentIdList 学生id列表
     * @return 是否成功
     */
    void sendCommentMsg(Date scheduleAt, Integer courseScheduleId, List<Integer> studentIdList);

    /**
     * 发送考勤通知
     * @param courseScheduleId 课次
     * @param orgId orgId
     * @param scheduleAt 日期
     * @param spentScheduleCount 消费课时
     * @param studentIdList 学生Id列表
     */
    void sendAttendanceMsg(Integer courseScheduleId, Integer orgId, Date scheduleAt, int spentScheduleCount, List<Integer> studentIdList, AttendanceStatus status);

    /**
     * 发送上课通知提醒
     * @param courseScheduleIdList 课次ID
     * @param noticeScheduleAt 提醒哪天的课次
     */
    void sendPreNoticeMsg(List<Integer> courseScheduleIdList, Date noticeScheduleAt);

    /**
     * 调班成功通知
     * @param studentId
     * @param courseScheduleId
     * @param orgId
     * @param operateTime
     * @param currentCourseScheduleName
     */
    void sendCourseScheduleChangeMsg(int studentId,  int courseScheduleId, int orgId, Date operateTime, String currentCourseScheduleName);

    /**
     * 课时变更通知
     * @param studentId 学生id
     * @param courseScheduleId 课次id
     * @param orgId 机构ID
     * @param operateTime 操作时间
     * @param oldCount 原课时
     * @param changeCount 变化课时
     * @param currentCount 现有课时
     */
    void sendScheduleCountChangeMsg(int studentId,  int courseScheduleId, int orgId, Date operateTime, int oldCount, int changeCount, int currentCount, String reason);
}
